﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Senparc.Weixin.Exceptions;
using Colorful.WeiXin.Utilities;
using Colorful.Database;

namespace Colorful.WeiXin.OpenTicket
{
    /// <summary>
    /// OpenTicket即ComponentVerifyTicket
    /// </summary>
    public class OpenTicketHelper
    {
        public static string GetOpenTicket(string componentAppId)
        {
            using (var db = DbHelper.GetDb())
            {
                string openTicket = null;
                var setting = db.WeChatSettings.FirstOrDefault(a => a.Id == componentAppId);
                if (setting != null)
                {
                    openTicket = setting.Ticket;
                }
                else
                {
                    throw new WeixinException("OpenTicket不存在！");
                }
                return openTicket;


                ////实际开发过程不一定要用文件记录，也可以用数据库。
                //var openTicketPath = Server.GetMapPath("~/App_Data/OpenTicket");
                //string openTicket = null;
                //var filePath = Path.Combine(openTicketPath, string.Format("{0}.txt", componentAppId));
                //if (File.Exists(filePath))
                //{
                //    using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                //    {
                //        using (TextReader tr = new StreamReader(fs))
                //        {
                //            openTicket = tr.ReadToEnd();
                //        }
                //    }
                //}
                //else
                //{
                //    throw new WeixinException("OpenTicket不存在！");
                //}

                //其他逻辑

                //return openTicket;
            }
        }
    }
}
